import java.util.Scanner;

//最小花费爬楼梯

public class code03 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 创建一个数组，确定当前数组的长度
        int[] arr = new int[in.nextInt()];

        for(int i = 0; i < arr.length; i++) {
            // 将输入的元素全部存储到数组中
            arr[i] = in.nextInt();
        }

        // 实现一个方法，通过填写 dp 表的形式解决问题
        System.out.print(CreateDP(arr));
    }

    private static int CreateDP(int[] arr) {
        // 创建 dp 表
        // 因为最终是要登顶的，所以相对花费需要比当前数组长度 + 1
        int[] dp = new int[arr.length + 1];
        // dp[i] 表示的是当前位置花费最小
        // 初始化 dp 表
        dp[0] = 0;
        dp[1] = 0;

        // 进行填表操作
        for(int i = 2; i < arr.length + 1; i++) {
            dp[i] = Math.min(dp[i - 1] + arr[i - 1], dp[i - 2] + arr[i - 2]);
        }

        // 最终返回 arr 的最后一位即可
        return dp[arr.length];
    }
}
